<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * Помощник-виджет для отрисовки списка стран
 *
 * @package CoreFramework
 * @version 1.0
 * @author Gennadiy Kozlenko
 */

/**
 * Отрисовка виджета
 * 
 * @access public
 * @param string $str
 * @return string
 */
function countries_widget($params = array()) {
   $obj =& get_instance();
   
   // Количество записей
   $count = 0;
   if (isset($params['count'])) {
      $count = (int) $params['count'];
   }
   
   // View
   $view = 'body';
   if (isset($params['view'])) {
      $view = $params['view'];
   }
   
   // Получаем slug
   $slug = $obj->uri->segment(1);
   $slug = preg_replace('~\.html$~', '', $slug);
   // Получаем страну
   $value = '';
   if ('country' == $slug) {
      $value = $obj->uri->segment(2);
      $value = preg_replace('~\.html$~', '', $value);
   }
   
   // Подключаем библиотеку кеша
   $key = 'countries-' . $count;
   //$obj->load->library('cache', array('default_ttl' => 3600));
   
   // Проверяем в кеше
   $items = array();
   if (true/*!$obj->cache->is_cached($key, 'widgets')*/) {
      // Получаем жанры
      $obj->db->select('c.id_country AS id, c.title, c.slug, COUNT(v.id_video) AS count', false)
         ->from('countries c')
         ->join('video_countries vc', 'vc.id_country = c.id_country')
         ->join('videos v', 'vc.id_video = v.id_video')
         ->where('v.num_torrents >', 0)
         ->where('v.status', 'active')
         ->group_by('c.id_country')
         ->order_by('count', 'desc');
      if (0 < $count) {
         $obj->db->limit($count);
      }
      $query = $obj->db->get();
      if (0 < $query->num_rows()) {
         $items = $query->result_array();
         //$obj->cache->save($key, $items, 'widgets');
      }
   } else {
      //$items = $obj->cache->get($key, 'widgets');
   }
   
   $output = '';
   //if (0 < count($items)) {
      // Помечаем текущую страну
      foreach ($items as &$item) {
         if ($item['slug'] == $value) {
            $item['is_active'] = array(array());
         } else {
            $item['is_active'] = array();
         }
      }
      unset($item);
      $data = array(
         'items'       => $items,
         'all_active'  => 'countries' != $slug && empty($value) ? array(array()) : array(),
         'list_active' => 'countries' == $slug ? array(array()) : array(),
      );
      $output = $obj->parser->parse('widgets/countries/' . $view . '.html', $data, true);
   //}
   return $output;
} // end countries_widget
